﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DNA.Mvc.jQuery
{
    /// <summary>
    /// Defines a common Navigable Data Model
    /// </summary>
    public class NavigableData:INavigable
    {
        private string _title = "";
        private object _value = "";
        private string imageUrl = "";
        private string tooltip = "";
        private string navigateUrl = "";
        private string target = "";

        /// <summary>
        /// Gets/Sets the navigate url of the node.
        /// </summary>
        public string NavigateUrl
        {
            get { return navigateUrl; }
            set { navigateUrl = value; }
        }

        /// <summary>
        /// Gets/Sets the tooltip text of the node.
        /// </summary>
        public string ToolTip
        {
            get { return tooltip; }
            set { tooltip = value; }
        }
        /// <summary>
        /// Gets/Sets the open window target
        /// </summary>
        public string Target
        {
            get { return target; }
            set { target = value; }
        }
        /// <summary>
        /// Gets/Sets the additional value.
        /// </summary>
        public object Value
        {
            get { return this._value; }
            set { this._value = value; }
        }

        /// <summary>
        /// Gets/Sets the image url.
        /// </summary>
        public string ImageUrl
        {
            get { return imageUrl; }
            set { imageUrl = value; }
        }

        /// <summary>
        /// Gets/Sets the node text content.
        /// </summary>
        public string Title
        {
            get { return _title; }
            set { _title = value; }
        }

        #region INavigate members

        string INavigable.Description
        {
            get { return this.tooltip; }
        }

        string INavigable.Title
        {
            get { return this.Title; }
        }

        string INavigable.NavigateUrl
        {
            get { return this.NavigateUrl; }
        }

        string INavigable.ImageUrl
        {
            get { return this.ImageUrl; }
        }

        string INavigable.Target
        {
            get { return this.Target; }
        }

        object INavigable.Value
        {
            get { return this.Value; }
        }

        #endregion
    }
}
